Espérance de vie

Présentation du projet

Dans ce projet, nous regarderons l’espérance de vie des hommes et des femmes dans 170 pays, nous ferons des cartes du monde et des barplots interactifs, pour rendre la visualisation plus compréhensible…

Données

données sur l’espérance de vie des femmes et des hommes au niveau mondial en 2019. (Ces données ont été collectées sur différents sites Web, elles contenaient plusieurs valeurs manquantes qui ont été complétées à la main).

countries <- read.csv("https://gist.githubusercontent.com/tadast/8827699/raw/f5cac3d42d16b78348610fc4ec301e9234f82821/countries_codes_and_coordinates.csv")

data <- read.csv("data.csv", header = TRUE, sep = ",")
summary(data)
##      code               nom                name               femme      
##  Length:170         Length:170         Length:170         Min.   :55.49  
##  Class :character   Class :character   Class :character   1st Qu.:68.54  
##  Mode  :character   Mode  :character   Mode  :character   Median :77.07  
##                                                           Mean   :74.76  
##                                                           3rd Qu.:80.72  
##                                                           Max.   :87.45  
##      homme      
##  Min.   :51.08  
##  1st Qu.:64.33  
##  Median :70.88  
##  Mean   :69.83  
##  3rd Qu.:75.42  
##  Max.   :81.90

On peut remarque que la moyenne de l’espérance de vie des femmes (variable femme) est supérieur à celle des hommes (variable homme) d’àprès le summary().

# donnée de la map
mapworld <- map_data("world") %>% 
  filter(region != "Antarctica", 
         region != "Greenland")

# Jointures
esp_vie <- data %>% 
  left_join(countries, by = c("name" = "Country")) %>% 
  select(code, nom, name, femme, homme) %>% 
  full_join(mapworld, by = c("name" = "region"))

Palettes :

On génère quelques palette qu’on utilisera…

palette1 <- paste0("#", c("b5c99a", "9CC5A1", "49A078", "216869"))
palette2 <- paste0("#", c("b5e48c", "76c893", "34a0a4", "1a759f"))
palette3 <- paste0("#", c("cad2c5", "84a98c", "52796f", "354f52"))
palette_gradient <- c("#dbd5a4", "#354f52")
palette_gradient2 <- c("#95f9c3", "#0b3866")
palette_gradient3 <- c("#faae7b", "#432371")
palette_gradient4 <- c("#F3E69Bff", "#F79D7Fff", "#E2778Aff", "#B05D9Cff")

Maps Interactives

Pour les femmes

Nous faisons un graphique représentant la carte du monde avec l’espérance de vie des femmes dans chaque pays, plus la couleur est foncée, plus l’espérance de vie des femmes est grande.

Ce graphique est bien interactif, donc en cliquant sur un pays vous trouverez les données exactes (nom du pays et l’espérance de vie des femmes pour ce pays). Vous pouvez même zoomer en sélectionnant une partie avec le curseur sur la carte pour mieux visualiser les pays un peu plus petits…

gg <- esp_vie %>% 
  ggplot(aes(x = long, y = lat, group = group)) +
  geom_polygon(aes(fill = femme, 
                   text = paste("Pays: ", name, "(",nom,")",
                                "<br>",
                                "Espérance de vie:", femme, " ans"))) + 
  scale_fill_gradientn(colours = palette_gradient3, 
                       name = "Age",
                       labels = c("≤73.97 ans", "≤79.24 ans", "≤83.7 ans", "≤87.45 ans")) +
  # fond du plot
  theme(panel.background = element_rect("#20252C"),
        plot.background =  element_rect("#20252C"),
        legend.background = element_rect("#20252C")) +
  # legend
  theme(legend.position = "bottom") +
  # on enlève la grid et les axes
  theme(panel.grid.major = element_blank(), 
        panel.grid.minor = element_blank(), 
        panel.border = element_blank()) +
  theme(axis.ticks = element_blank(), 
        axis.text = element_blank()) +
  xlab("") + ylab("") +
  # titre du plot
  ggtitle("Espérance de vie chez les femmes") +
  theme(plot.title = element_text(hjust = 0.5, size = 20, color = "#DCE1DE"),
        text = element_text(color = "#DCE1DE")) +
  theme(plot.margin = unit(c(1, 0, 0, 0), "cm")) +
  theme(legend.position = c(0.12, 0.25))
## Warning: Ignoring unknown aesthetics: text
ggplotly(gg, tooltip = "text")
rm(countries, mapworld, gg)

Pour les hommes

On fait pareil pour les hommes, on effectue un graphique interactif représentant l’espérance de vie des hommes dans chaque pays.

Plus la couleur est foncée, plus l’espérance de vie chez les hommes est grande.

## Warning: Ignoring unknown aesthetics: text

Pour les hommes et les femmes

On s’intéresse maintenant à la différence d’espérance de vie moyenne des femmes et des hommes, on aimerait voir dans quel pays l’espérance de vie moyenne des femmes est supérieure à celle des hommes et inversement.. .

On crée alors une nouvelle variable femme-homme :

  • si femme-homme > 0 : donc l’espérance de vie des femmes est supérieure à celle des hommes, donc le pays sera coloré en violet. Si cette différence est vraiment grande alors la couleur sera plus foncée sinon elle sera claire.

  • si femme-homme < 0 : donc l’espérance de vie des hommes est supérieure à celle des femmes, donc le pays sera coloré en bleu. Si cette différence est vraiment grande alors la couleur sera plus foncée sinon elle sera claire.

  • si femme-homme = 0 : donc l’espérance de vie des hommes est égale à celle des femmes, donc le pays sera coloré en blanc.

esp_vie <- esp_vie %>% 
  mutate(homme_et_femme = round(femme-homme, 3))
## Warning: Ignoring unknown aesthetics: text

Barplots Interactifs

On va s’interesser maintenant à l’espérance de vie chez les hammes et les femmes pour chaque continent.

Pour cela on doit importer des données correspondant au continent des pays et les joindre à notre jeu de données.

Continents :

continent <- read.csv("continents2.csv.xls") %>% 
  select(country = name, alpha.3, region, sub.region)

Jointure :

barplot_data <- data %>% 
  left_join(continent, by = c("code" = "alpha.3"))

# On ajoute la moyenne d'espérance des femmes et hommes pour chaque continent 
# dans nos données.

moyenne_par_continent <- barplot_data %>% 
  left_join(barplot_data %>% 
  group_by(region) %>% 
  summarise(moy_femme_conti = mean(femme), moy_homme_conti = mean(homme)) %>% 
  transmute(region, moy_femme_conti, moy_homme_conti), 
  by = "region")

attach(data)

barplots_data <- moyenne_par_continent %>% 
  data.frame(esp_vie = as.numeric(c(femme,homme))) %>% 
  mutate(sexe = rep(c("femme", "homme"), each = 170))

barplots_data$moy_conti = as.numeric(c(moyenne_par_continent$moy_femme_conti, 
                                       moyenne_par_continent$moy_homme_conti))
# vérification :
barplots_data$moy_conti[171] == barplots_data$moy_homme_conti[1]
## [1] TRUE
barplots_data <- na.omit(barplots_data)
# barplots_data$esp_vie[171] == barplots_data$homme[1]

Représentation des graphiques

Graphique de gauche :

  • l’espérance de vie des hommes en bleu ciel et celle des femmes en violet pour chaque continent.

Graphique de droite :

  • l’espérance de vie des hommes en bleu ciel et celle des femmes en violet pour chaque pays du continent.

Exemple, pour l’Europe :

Ce graphique est bien interatif, vous pouvez :

  • cliquer sur le sexe à droite (homme ou femme) pour visualiser qu’une seule variable.
  • zoomer pour mieux visualiser, en seléctionnant une partie du graphe avec le curseur.
  • télécharger l’image, en cliquant sur l’icône photo.
  • réinitialiser les changement, en cliquant sur l’icône maison.

Pour tout les continents ensemble.

On fait pareil mais avec les autres continents puis on les regroupent tous dans un seul graphique.

subplot(stat_asie, 
        stat_afrique, 
        stat_amerique, 
        stat_europe,
        stat_oceanie, 
        nrows = 5)

Conclusion

On constate que quel que soit le continent ou le pays, l’espérance de vie des femmes est supérieur à celle des hommes en 2019.

D’après la troisième carte, on a vu qu’il n’y avait pas de couleur bleue ce qui veut dire qu’il n’y a aucun pays dont l’espérance de vie des hommes est supérieur à celle des femmes.

Pareillement pour les barplots, on remarque que les barres violettes dépassent toujours les barres en bleu ciels, on aboutit donc à la même conclusion.